 import Mock from 'mockjs'

 // get请求从config.url获取参数，post从config.body中获取参数
 function param2Obj(url) {
     const search = url.split('?')[1]
     if (!search) {
         return {}
     }
     return JSON.parse(
         '{"' +
         decodeURIComponent(search)
         .replace(/"/g, '\\"')
         .replace(/&/g, '","')
         .replace(/=/g, '":"') +
         '"}'
     )
 }

 let List = []
 const count = 200

 for (let i = 0; i < count; i++) {
     List.push(
         Mock.mock({
             id: Mock.Random.guid(),
             name: Mock.Random.cname(),
             addr: Mock.mock('@county(true)'),
             'age|18-60': 1,
             birth: Mock.Random.date(),
             sex: Mock.Random.integer(0, 1)
         })
     )
 }

 export default {
     /**
      * 获取列表
      * 要带参数 name, page, limt; name可以不填, page,limit有默认值。
      * @param name, page, limit
      * @return {{code: number, count: number, data: *[]}}
      */
     getUserList: config => {
         const { name, page = 1, limit = 20 } = param2Obj(config.url)
         console.log('name:' + name, 'page:' + page, '分页大小limit:' + limit)
         const mockList = List.filter(user => {
             if (name && user.name.indexOf(name) === -1 && user.addr.indexOf(name) === -1) return false
             return true
         })
         const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
         return {
             code: 20000,
             count: mockList.length,
             list: pageList
         }
     },
     /**
      * 增加用户
      * @param name, addr, age, birth, sex
      * @return {{code: number, data: {message: string}}}
      */
     createUser: config => {
         const { name, addr, age, birth, sex } = JSON.parse(config.body)
         console.log(JSON.parse(config.body))
         List.unshift({
             id: Mock.Random.guid(),
             name: name,
             addr: addr,
             age: age,
             birth: birth,
             sex: sex
         })
         return {
             code: 20000,
             data: {
                 message: '添加成功'
             }
         }
     },
     /**
      * 删除用户
      * @param id
      * @return {*}
      */
     deleteUser: config => {
         const { id } = param2Obj(config.url)
         if (!id) {
             return {
                 code: -999,
                 message: '参数不正确'
             }
         } else {
             List = List.filter(u => u.id !== id)
             return {
                 code: 20000,
                 message: '删除成功'
             }
         }
     },
     /**
      * 批量删除
      * @param config
      * @return {{code: number, data: {message: string}}}
      */
     batchremove: config => {
         let { ids } = param2Obj(config.url)
         ids = ids.split(',')
         List = List.filter(u => !ids.includes(u.id))
         return {
             code: 20000,
             data: {
                 message: '批量删除成功'
             }
         }
     },
     /**
      * 修改用户
      * @param id, name, addr, age, birth, sex
      * @return {{code: number, data: {message: string}}}
      */
     updateUser: config => {
         const { id, name, addr, age, birth, sex } = JSON.parse(config.body)
         const sex_num = parseInt(sex)
         List.some(u => {
             if (u.id === id) {
                 u.name = name
                 u.addr = addr
                 u.age = age
                 u.birth = birth
                 u.sex = sex_num
                 return true
             }
         })
         return {
             code: 20000,
             data: {
                 message: '编辑成功'
             }
         }
     }
 }